package com.zhongxiangspace.mapper;

import com.zhongxiangspace.entity.ArticleType;
import com.zhongxiangspace.entity.Articles;
import com.zhongxiangspace.entity.QueryAnalyzer;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 文章
 */
public interface ArticleMapper {
    /**
     * 查询分类
     *
     * @param state
     * @return
     */
    List<ArticleType> queryType(@Param("state") Integer state);

    /**
     * 添加分类
     *
     * @param articleType
     * @return
     */
    boolean articleTypeAdd(ArticleType articleType);

    /**
     * 获取单条类型data
     *
     * @param id
     * @return
     */
    ArticleType queryTypeOne(@Param("id") Integer id);

    /**
     * 更新数据类型data
     *
     * @param articleType
     * @return
     */
    boolean updataStatusCode(ArticleType articleType);

    /**
     * 逻辑删除
     *
     * @param id
     * @return
     */
    boolean delete(@Param("id") Integer id);

    /**
     * 更新类型
     *
     * @param articleType
     * @return
     */
    boolean updataType(ArticleType articleType);

    /**
     * 插入文章内容
     *
     * @param articles
     * @return
     */
    boolean insertArticles(Articles articles);

    /**
     * 获取所有的文章
     *
     * @param queryAnalyzer
     * @return
     */
    List<Map<String, Object>> articlesAll(QueryAnalyzer queryAnalyzer);

    /**
     * 逻辑删除文章
     *
     * @param id
     * @return
     */
    boolean deleteDetails(@Param("id") Integer id);

    /**
     * 获取单条数据
     *
     * @param id
     * @return
     */
    Articles queryOne(@Param("id") Integer id);

    /**
     * 是否热门
     *
     * @param articles
     * @return
     */
    boolean updataStateHot(Articles articles);

    /**
     * 上下线
     *
     * @param articles
     * @return
     */
    boolean updataStates(Articles articles);

    /**
     * 更新文章
     *
     * @param articles
     * @return
     */
    boolean updataDetails(Articles articles);

    /**
     * 文章
     *
     * @param articleQueryAnalyzer
     * @return
     */
    List<Map<String, Object>> queryArticles(QueryAnalyzer articleQueryAnalyzer);

    /**
     * 上篇
     *
     * @param id
     * @return
     */
    Articles queryOneDOWN(@Param("id") Integer id);

    /**
     * 下篇
     * @param id
     * @return
     */
    Articles queryOneUP(@Param("id") Integer id);
}
